import request from '@/utils/request';

/**
 * 发布视频接口
 * @param {Object} data 视频信息
 */
export function publishVideoApi(data) {
  return request({
    url: '/video/publish',
    method: 'post',
    data
  });
}

/**
 * 获取用户视频列表
 * @param {Object} params 查询参数 {userId, page, pageSize, status}
 * @returns {Promise} 包含视频列表的 Promise
 */
export function getUserVideosApi(userId, params) {
  return request({
    url: `/video/user/${userId}/public-videos`,
    method: 'get',
    params
  });
}

/**
 * 删除视频
 * @param {string|number} videoId 要删除的视频ID
 * @returns {Promise} 删除结果的 Promise
 */
export function deleteVideoApi(videoId) {
  return request({
    url: `/video/deleteVideo/${videoId}`,
    method: 'delete'
  });
}

/**
 * 更改视频状态
 * @param {string|number} videoId 视频ID
 * @param {string|number} status 新状态 (1:公开, 2:私密, 3:审核中)
 * @returns {Promise} 更新结果的 Promise
 */
export function changeVideoStatusApi(videoId, data) {
  return request({
    url: `/video/${videoId}/resubmit`,
    method: 'PATCH',
    data
  });
}

/**
 * 获取视频分类列表
*/
export function getVideoCategoriesOptionsApi() {
  return request({
    url: '/video-categories/options',
    method: 'get'
  });
}

/**
 * 获取视频详情
 * @param {string|number} videoId 视频ID
 * @returns {Promise} 包含视频详情的 Promise
 */
export function getVideoDetailApi(videoId) {
  return request({
    url: `/video/${videoId}`,
    method: 'get'
  });
}

/**
 * 更新视频信息
 * @param {string|number} videoId 视频ID
 * @param {Object} data 视频更新信息
 * @returns {Promise} 更新结果的 Promise
 */
export function updateVideoApi(videoId, data) {
  return request({
    url: `/video/${videoId}`,
    method: 'PATCH',
    data
  });
}

/**
 * 获取视频统计数据
 * @param {string|number} videoId 视频ID
 * @returns {Promise} 包含视频统计数据的 Promise
 */
export function getVideoStatsApi(videoId) {
  return request({
    url: `/video/${videoId}/stats`,
    method: 'get'
  });
}

/**
 * 重新提交审核
 * @param {string|number} videoId 视频ID
 * @returns {Promise} 提交结果的 Promise
 */
export function resubmitVideoApi(videoId) {
  return request({
    url: `/video/${videoId}/resubmit`,
    method: 'post'
  });
}

/**
 * 获取我的视频列表
*/
export function getMyVideosApi(params) {
  return request({
    url: '/video/my/videos',
    method: 'get',
    params
  });
}

/**
 * 获取用户推荐视频列表
*/
export function getRecommendVideosApi(params) {
  return request({
    url: '/video/random',
    method: 'get',
    params
  });
}